package com.ufcg.lvc.client.prototipacao;

import java.util.List;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;
import com.ufcg.lvc.client.GreetingService;
import com.ufcg.lvc.client.GreetingServiceAsync;

public class NovaTurma {

	AbsolutePanel painelNovaQuestao;
	String msgSaida;
	String tipo = "objetiva";
	List<String> listaTitulos;

	public static GreetingServiceAsync getServico() {
		return GWT.create(GreetingService.class);
	}

	public NovaTurma() {

		final AsyncCallback<Boolean> callback = new AsyncCallback<Boolean>() {

			@Override
			public void onFailure(Throwable caught) {
				msgSaida = "Erro na comunicação com o servidor";
			}

			@Override
			public void onSuccess(Boolean result) {
				msgSaida = "A questão foi salva corretamente";

			}
		};
		
		final AsyncCallback<List<String>> callbackList = new AsyncCallback<List<String>>() {

			@Override
			public void onSuccess(List<String> result) {
				listaTitulos = result;
			}

			@Override
			public void onFailure(Throwable caught) {
				System.out.println("Erro ao carregar questoes");
			}
		};
		getServico().getLista("questao", "titulo", callbackList);

		painelNovaQuestao = new AbsolutePanel();
		painelNovaQuestao.setSize("900px", "707px");
		// painelInicial.setSize("963px", "713px");

		Label lblTitulo = new Label("Nova turma");
		lblTitulo.setStyleName("gwt-TituloMedio");
		painelNovaQuestao.add(lblTitulo, 0, 10);

		Label lblTituloQuestao = new Label("Nome:");
		painelNovaQuestao.add(lblTituloQuestao, 60, 69);
		lblTituloQuestao.setSize("43px", "17px");

		Label lblAssuntoAbordado = new Label("Instituição:");
		painelNovaQuestao.add(lblAssuntoAbordado, 60, 109);
		lblAssuntoAbordado.setSize("165px", "17px");

		Label lblEnunciado = new Label("Disciplina:");
		lblEnunciado.setDirectionEstimator(true);
		painelNovaQuestao.add(lblEnunciado, 60, 153);
		lblEnunciado.setSize("75px", "17px");

		Label lblDificuldade = new Label("Alunos:");
		painelNovaQuestao.add(lblDificuldade, 60, 245);
		lblDificuldade.setSize("80px", "17px");

		Label lblImagem = new Label("Ano:");
		painelNovaQuestao.add(lblImagem, 60, 194);
		lblImagem.setSize("61px", "17px");

		final TextBox tituloTB = new TextBox();
		painelNovaQuestao.add(tituloTB, 158, 69);
		tituloTB.setSize("422px", "14px");

		final TextBox assuntoTB = new TextBox();
		painelNovaQuestao.add(assuntoTB, 158, 109);
		assuntoTB.setSize("422px", "14px");

		final TextArea enunciadoTA = new TextArea();
		enunciadoTA.setSize("553px", "153px");
		painelNovaQuestao.add(enunciadoTA, 158, 245);

		Label lbl = new Label("");
		painelNovaQuestao.add(lbl);

		final Button btnSalvar = new Button("Criar");
		btnSalvar.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent event) {
//				getServico().salvarQuestao(tituloTB.getText(),
//						assuntoTB.getText(), enunciadoTA.getText(),
//						String.valueOf(dificuldadeSlider.getValue()), tipo,
//						imagemFU.getFilename(), callback);
//				painelNovaQuestao.clear();
//				final MinhasQuestoes n = new MinhasQuestoes(listaTitulos);
//				painelNovaQuestao.add(n.getPanel());

			}
		});
		btnSalvar.setText("Salvar");
		painelNovaQuestao.add(btnSalvar, 362, 461);
		btnSalvar.setSize("81px", "30px");

		final Button btnCancelar = new Button("Editar");
		btnCancelar.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent event) {
			}
		});
		btnCancelar.setText("Cancelar");
		painelNovaQuestao.add(btnCancelar, 449, 461);
		btnCancelar.setSize("81px", "30px");
		
		TextBox textBox = new TextBox();
		painelNovaQuestao.add(textBox, 158, 153);
		textBox.setSize("422px", "14px");
		
		ListBox comboBox = new ListBox();
		painelNovaQuestao.add(comboBox, 158, 194);

	}

	public AbsolutePanel getPanel() {
		return painelNovaQuestao;
	}
}
